Merhaba Ömer,
http://phone.codeplex.com/SourceControl/latest adresinde Windows Phone Toolkit'in kaynak kodunu bulabilirsin. Bu kütüphane Windows Phone SDK'sını geliştiren takım tarafından geliştiriliyor yazan amcalar işin merkezinden yani :) O yüzden kodu incelemek çok şey katabiliyor insana.
Ben soruna çözüm araştırırken açtım AutoCompleteBox kontrolünün kodunu biraz kurcaladım, gördüğüm kadarıyla filtrelenen object listesi public olarak dışarıya açılmamış. Yapmam gerekenin private ya da protected olarak tanımlanmış bu listeyi public olarak açmak olduğunu düşünüp kodu okurken SelectionAdapter adında protected olarak tanımlanmış bir property'nin ItemsSource özelliğinde bu filtrelenmiş listenin bulunduğunu gördüm. AutoCompleteBox'ı inherit edip bu protected property'yi aşağıdaki gibi public olarak açtım.
using System.Collections;
using Microsoft.Phone.Controls;
namespace PhoneApp1
{
public class CustomAutoCompleteBox : AutoCompleteBox
{
public IEnumerable FilteredItemsSource
{
get { return SelectionAdapter.ItemsSource; }
}
}
}
Daha sonra sayfamda AutoCompleteBox yerine inherit ederek oluşturduğum CustomAutoCompleteBox kontrolünü ve örnek bir ListBox'ı aşağıdaki gibi kullandığımda çalıştığını gördüm.
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<phoneApp1:CustomAutoCompleteBox x:Name="AutoCompleteBox" />
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox x:Name="Lst" Height="400" Width="480" ItemsSource="{Binding ElementName=AutoCompleteBox, Path=FilteredItemsSource}"></ListBox>
<!--<Button Content="Terminate Application" Click="ButtonBase_OnClick" />-->
</Grid>